Zapierを使ってツイートをChatWorkに投稿させる
Zapierを使って Twitter と ChatWork を連携させる
twitter であるハッシュタグが見つかったら、Facebook にポストするというように、 “If this, then that” のワークフローを Web サービス間で定義する IFTTT という Web サービスが存在します。
コードを書かずにGUI操作だけでワークフローを定義出来るのが何よりも魅力です。
ジョブを作成して、cron や Jenkins のようなジョブスケジューラーで実行させたり、AWS Lambda をスケジュール実行させる事もできるでしょうが、シンプルな定形処理であれば、IFTTT のようなサービスを利用すると、運用・管理の手間が軽減されます。
さて、IFTTT の類似サービスに、高機能版 IFTTT とでも言うべき Zapier というサービスが存在します。
今回は Zapier を使って、ある Twitter アカウントがツイートをするたびに、ChatWork にメッセージ投稿させてみます。
IFTTT と Zapier の違い
IFTTT は機能を絞り、使いやすさ、わかりやすさを目指しているのに対して、Zapier はシステマティックに細かくワークフローを定義出来るようにしています。
IFTTT はあくまで “If this, then that” のシンプルな2ステップのフローにこだわるのに対して、 Zapier は複数ステップのフローに対応し、特定の文字列を含んでいる場合のみ処理するフィルター機能まで存在することからも、サービスの方向性の違いを感じられます。
Zapierを使ってツイートをWebサービスを連携させる
2016年7月4日時点でZapier は 500 以上の膨大なサービス・プロトコルと連携出来ます。
サービス一覧 https://zapier.com/zapbook/
今回は Zapier を使って、新しいツイートがあったら、チャットサービスの ChatWork に通知します。 Zapier ChatWork 連携は IFTTT が対応していない機能の一つです。
操作のアウトライン
- ChatWork の API トークンの取得
- Zapier サービスに会員登録
- ワークフローの定義
ChatWork の API トークンの取得
チャットワークAPIでは、現在APIトークンによる認証のみを提供しています。 次のページから API トークンを取得します。
Zapier サービスに会員登録
zapier.com にアクセスし、名前とメールアドレスを入力し、サービスに登録します。
メールアドレスの疎通確認は行われないため、メールアドレスを間違えないようにしましょう。
ワークフローの定義
Zapier では “If this, then that” のフロー全体を “ZAP” とよび、”If this”を “TRIGGER”、”then that” を “ACTION” と呼びます。
ZAP の定義
“Make a ZAP” のリンクから ZAP を作成します。
TRIGGER の定義
トリガーアプリケーションには “Twitter” を選択し、トリガーには ”User Tweet(Triggers when a specific user tweets)” を選択します。
Twitter API 呼び出し元の Twitter アカウントと Zapier アカウントを連携させます。
Zapier に Twitter アカウントへのアクセスを許可します。
許可する Twitter アカウントにログインします。
ツイートをチェックする Twitter アカウントを入力します。
連携試験を行いします。
ACTION の定義
アクションアプリケーションには “ChatWork” を選択し、アクションには ”Send Message(Post a new message to a specific group chat in ChatWork)” を選択します。
チャットメッセージ投稿先の ChatWork アカウントと Zapier アカウントを連携させます。
ChatWork の API トークンを入力します。
ChatWork の投稿先チャット部屋(Room)と投稿メッセージ文(Text)を設定します。
「Text」には ChatWork のマークアップを使えます。 また、Action で取得可能なツイート属性の一覧は、検索ボックスから検索可能です。
最終的に、次のような「Text」にしました。
ACTION 内容はプレビューできます。
今回はシンプルな IFFT 形式のため、「Finish」ボタンから ZAP の作成を終えます。
最後の ZAP を有効化(ON)します。
管理画面の「My Zaps」から作成した ZAP を確認できます。
動作確認
それでは、しばらく放置してみると、以下のようにチャットワークにメッセージ通知されました。
実行履歴
Zapier では IFTTT ワークフローの実行を TASK と呼びます。 各 TASK は My Zaps の Zap 一覧画面において、各 Zap の HISTORY から確認できます。
遷移先のタスク履歴画面が以下です
Zapier は有料プランでなければ実用的ではない
Zapire は 500 以上のアプリケーションと連携可能で、複雑なワークフローを定義出来る一方で、有料プランを選択しなければ、機能制限が厳しく実用的ではありません。
プランは次図の通りです。
Plan | Price | Multi-step Zaps | Premium Apps | Autoreplay Tasks | Tasks/mo | Zaps | Zaps Run Every |
---|---|---|---|---|---|---|---|
Free | $0/month | ❌ | ❌ | ❌ | 100 | 5 | 15 Minutes |
Basic | $20/month | ✅ | ✅ | ❌ | 1,000 | 20 | 15 Minutes |
Business | $50/month | ✅ | ✅ | ✅ | 3,000 | 50 | 5 Minutes |
Business Plus | $125/month | ✅ | ✅ | ✅ | 10,000 | 125 | 5 Minutes |
Infrastructure | $250/month | ✅ | ✅ | ✅ | 50,000 | 250 | 5 Minutes |
評価軸を順に見ていてきます。
Multi-Step Zaps
無料プランでは IFTTTと同じ “If this, then that” の 2 ステップしか定義できません。 Zapier の強みである 3 ステップ以上を定義したい場合は、有料プランを選択しましょう。
Premium Apps
Zapier は500以上のアプリケーションと連携します。 しかし、Salesforce、Zendesk など一部のアプリケーションは “Premium Apps” に分類され、これらアプリケーションは有料プランでなければ選択できません。
Autoreplay Tasks
連携サービスが一時的に落ちていて、Zap が正常終了しなかった時に再実行する仕組みが Autoreplay です。 この機能が必要場合は Business 以上のプランを選択しましょう。 Zap の実行履歴(History)から、手動で Zap を再実行してリカバリーするのは面倒ですよね。
Tasks/mo
Zapier では定義した Zap の実行単位を Task と呼びます。 ある Zap が 3 回呼びだされれば 5 Tasks となります。
プランごとに、月あたりの Tasks 数上限があります。 無料プランは 100 Tasks/mo で一日に約3回のペースです。
最上位の Infrastructure プランでも 50,000 Tasks/mo です。
Zapier の Zap は、AWS Lambda のように、カジュアルに高頻度で呼び出すことは想定していないようです。
Zaps
Zap の上限数はプランごとに異なります。 無料プランでは 5 Zap までです。
Zaps Run Every
Zap の実行間隔です。
Free/Basic プランは 15 分間隔、より上位のプランは 5 分間隔で実行されます。
まとめ
Zapier の簡単な使い方を紹介しました。
連携サービスの多さは魅力的ですが、有料プランでなければサービス制限が厳しく、とりわけ Task 実行数は有料プランであっても、制限が厳しく感じました。
Zapier の制限に引っかからないようなワークフローを利用する限りでは、なんとか使えるのではないでしょうか。中でも ChatWork 連携が標準で備わっているのは、ChatWork ユーザーには魅力的かと思います。
参考リンク
- https://zapier.com/
- https://zapier.com/zapbook/chatwork/
- http://blog-ja.chatwork.com/2015/09/zapierzapier.html